System and method for dynamically retrieving data specific to a region of a layer

ABSTRACT

A method for retrieving data from a data source by querying the data source with data points of a layer. The data points may be encompassed within a determined region of the layer. The steps of the method may include: determining the region of the layer, dynamically querying the data source with one or more data points of the layer encompassed within the region upon determining the region, and receiving the data from the data source.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 11/590,943, filed Nov. 1, 2006, now U.S. Pat. No. 8,533,217issued on Sep. 10, 2013 which is incorporated by reference herein.

TECHNICAL FIELD

The present embodiments relate generally to dynamically retrieving data,and more particularly, but not exclusively, to dynamically retrievingdata specific to a region of a layer or a map.

BACKGROUND

Mapping services have become an integral part of web users' onlineexperience. The use of mapping services is on the rise. As more usersturn to online mapping services for information, the lines betweenlocation searching and information searching may blur. Instead ofsearching the global internet for information, a user may search forinformation specific to a geographic region they define. Furthermore,advertisers may have the ability to target the user with ads specific tothe user defined geographic region.

Online mapping services may provide a venue for web providers andadvertisers to efficiently target users. The efficiency of the user'ssearch and of the advertiser's targeted advertising may be inherentlytied to the user's ability to define a geographic region to search.Therefore there may be value in giving the user the ability to preciselydefine a specific geographic search region.

Currently the YAHOO! LOCAL MAPS service may allow the user to searchnear an address or within an entire viewable area, giving the userlittle control over the region they are searching. The breadth of thegeographic search is left completely to the discretion of the YAHOO!LOCAL MAPS service, which may result in useless search results andirrelevant advertisements. For example, a user may wish to search anon-line map for coffee shops near the north end of the Golden GateBridge. To do so the user may have to know the address of a locationnear the north end of the Golden Gate Bridge and then search for coffeeshops near the address. The YAHOO! LOCAL MAPS service may return coffeeshops within a certain distance north and south of the Golden GateBridge. The user may have no interest in the coffee shops south of theGolden Gate Bridge, but the user's inability to define a specific searchregion may leave them at the mercy of the YAHOO! LOCAL MAPS service'sdiscretion. Furthermore, the YAHOO! LOCAL MAPS service may have completecontrol over the breadth of the geographic search. The user may only beinterested in coffee shops within a certain distance north of the northend of the Golden Gate Bridge. With the YAHOO! LOCAL MAPS service, auser may be presented with useless information and irrelevantadvertisements while useful information and relevant advertisements mayfail to be displayed.

SUMMARY

A tool for selecting a region of a layer from which data points may beused to retrieve data from a data source including: a memory, aninterface, a display, and a processor. The memory may be able to store aset of data points that represent a layer. The display may beoperatively connected to the memory and processor for displaying thelayer stored in the memory and for displaying the data received from thedata source. The interface may be operatively connected to the memory,processor, and the display and may be able to be manipulated by anoperator to select the region of the layer, wherein the region may beresizable and movable. The processor may be operatively connected to thememory, the display and the interface and may determine the data pointsin the selected region of the layer, communicate a query to the datasource with the data points from the selected region of the layer andreceive the data from the data source. The operator may be able todetermine, resize or move the region of the layer using the interfaceand dynamically receive the data from the data source relevant to theregion.

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting and non-exhaustive embodiments are described with referenceto the following drawings. In the drawings, like reference numeralsrefer to like parts throughout the various figures unless otherwisespecified.

FIG. 1 provides a simplified view of a network environment implementinga selector tool.

FIG. 2 is a diagram illustrating an exemplary selector tool.

FIG. 3 is a flowchart illustrating the operations of a systemimplementing a selector tool when a user uses the tool to specify aregion.

FIG. 4 is a flowchart illustrating the operations of a systemimplementing a selector tool.

FIG. 5 is a screenshot of a mapping application implementing theselector tool.

FIG. 6 is a screenshot of a mapping application implementing theselector tool regarding the affect of zooming on the selector tool.

FIG. 7 is a screenshot of a mapping application implementing theselector tool regarding the affect of resizing the selector tool.

FIG. 8 is a flowchart illustrating dynamic operations of a systemimplementing the selector tool.

DETAILED DESCRIPTION

A system, tool and method, generally referred to as a tool, relate todynamically receiving information specific to a region, and moreparticularly, but not exclusively, to dynamically receiving informationspecific to a region selected from a layer and/or a map. The principlesdescribed herein may be embodied in many different forms. The tool mayallow map applications to display specific geographically relevantinformation pertaining to a region the user selected. The tool may allowbusinesses to target users with geographically relevant advertisementsand media based on the user selected region. The tool and methods mayallow for the selection of a region and the retrieval of data in anyapplication that graphically represents data. This may also include anapplication that visually depicts a sound file. Further, the tool mayallow a user to select a region and then quickly find informationspecific to the region they selected. The tool may be more efficient touse than known systems.

FIG. 1 shows a general overview of a system 100 that may implement atool for dynamically retrieving information based on a user selectedregion. The system 100 may include one or more web applications, thirdparty application servers or standalone applications 120A-N, users110A-N, a network 130 and service provider servers 140, such as YAHOO!Mapping service servers. In the system 100, web applications, thirdparty application servers and standalone applications 120A-N, mayconnect to the service provider servers 140 through the network 130.

The web application 120A may run on any platform that supports webcontent, and may include a web browser. This may include a computer, amobile phone, or any appliance capable of data communications,including, but not limited to, any appliance supporting the ADOBE FLASHPLAYER or other machine, whether virtual or not, used to run or parsefiles, such as FLASH files or other files used, such as to createanimations, advertisements, various web page components, integrate videointo web pages and develop rich internet applications such as portals.

The standalone applications 120N may be programmed in any programminglanguage that supports communication protocols. These languages mayinclude: SUN JAVA, C++, C#, ASP, SUN JAVASCRIPT, asynchronous SUNJAVASCRIPT, or ADOBE FLASH ACTIONSCRIPT, amongst others. The third partyapplication servers 120B may be running any standard application serversoftware. Such software may include: APACHE TOMCAT, MICROSOFT IIS, ADOBECOLDFUSION, or yapache amongst others. The standalone applications 120Nmay be third party standalone applications.

The web browsers, third party application servers and standaloneapplications 120A-N may be connected to the network 130 in anyconfiguration that supports data transfer. This may include a dataconnection to the network 130 that may be wired or wireless. The webbrowsers, third party application servers and standalone applications120A-N may individually be referred to as a client application, or anapplication.

The service provider servers 140 may include one or more of thefollowing: an application server, a data source, such as a databaseserver, and a middleware server. The service provider servers 140 mayco-exist on one machine or may be running in a distributed configurationon one or more machines. The service provider servers 140 maycollectively be referred to as the server.

There may be several configurations of database servers, applicationservers and middleware servers that may support such a system. Databaseservers may include MICROSOFT SQL SERVER, ORACLE, IBM DB2 or any otherdatabase software, relational or otherwise. The application server maybe APACHE TOMCAT, MICROSOFT IIS, ADOBE COLDFUSION, yapache or any otherapplication server that supports communication protocols. The middlewareserver may be any middleware that connects software components orapplications.

The database may include fields that link the data entry to theunderlying layer the user may be selecting from. In a mappingapplication utilizing a circular selector tool this may entail:including a longitude and latitude value with each database entry and adistance indicating the radial proximity to the longitude and latitudethat the entry relates to, including a range of longitude and latitudevalues that describe a geographic area where the entry pertains to, orincluding a physical location address and a radial distance from theaddress identifying an area which the entry pertains to. There may beseveral other methods of linking a data entry to the data represented ona layer, all of which may function properly within the present system.In the case of a visual depiction of a sound file, information may belinked to specific times in the sound file. The information may be anydata or file, such as a document, image or media, such as photos,videos, businesses and transit information.

Alternatively, the system 100 may exist internally within one machine.In this implementation a standalone application 120N may be running onthe machine and the service provider servers 140 may be a data source onthe machine. The network 130 may represent the channel in which thestandalone application 120N retrieves data from the data source.

Alternatively, the service provider servers 140 may request datarelevant to a region selected within a web application 120A or a thirdparty standalone application 120N from a third party application server120B. Upon receiving the requested data from the third party applicationserver 120B, the service provider servers 140 may then communicate thedata to the web application 120A or third party standalone application120N. The web application 120A or the third party standalone application120N may then display the data retrieved from the third partyapplication server 120N to the user.

For instance, a user 110A may request information regarding currentevents relevant to a selected geographic region on a web application120A. The current events data may not reside on the service providerservers 140, but may reside on an open third party application server120B, such as a newspaper's open application server. The serviceprovider servers 140 may retrieve the current event data relevant to theselected region from the newspaper's open application server and maythen communicate the retrieved data to the web application 120A.

FIG. 2 shows a system 200, one implementation of the system 100described in FIG. 1, implementing a method for dynamically retrievinggeographically relevant data based on a user selected region. The system200 may include one or more of a client application 220, a network 230,and service provider servers 240 which may include one or more of anapplication server 242, and a data source 244. The client application220 may connect to the service provider servers 240 via the network 230.The client application 220 may interact with the service providerservers 240 through the application server 242. The client application220 may communicate to the data source 244 via the application server242 or the client application 220 may communicate with the data source244 directly. The service provider servers 240 may be only one serverrunning the application server 242 and storing the data source 244.

The client application 220 may be any of the web browser 120A, thirdparty application servers 120B or a standalone application 120N. Theclient application 220 may be running on a machine that has a processor,memory, a display, and an interface. The processor may be operativelyconnected to the memory, display and the interface and may perform tasksat the request of the client application 220 or the underlying operatingsystem, such as determining the data points within the user selectedregion, communicating a query to the data source 244 and receiving datafrom the data source 244. The display may be operatively connected tothe memory and the processor and may be capable of displayinginformation to the user 210, such as the layer the user 210 is selectingfrom and the data received from the data source. The interface may beoperatively connected to the memory, the processor, and the display, andmay be manipulated by the user 210 to select a region from a layer, suchas a map.

If the client application 220 is the web browser 120A, the web browser120A may be running the ADOBE FLASH PLAYER or other machine, whethervirtual or not, used to run or parse files, such as FLASH files or otherfiles used, such as to create animations, advertisements, various webpage components, integrate video into web pages and develop richinternet applications such as portals. ADOBE FLASH, for example,interacts with the application server 242 in an asynchronous mode,enabling rapid local interactivity and display without having to waitfor responses from the application server 242.

Asynchronous describes the way in which communications between theclient application 220 and the application server 242 may be handled.The client application 220 may send a request to the application server242 and then may continue to function without waiting for the responsefrom the application server 242. When the response arrives from theapplication server 242 the client application's 220 event handlerprocesses the response and passes on the relevant information to theuser 210. Several other thin client implementations, such asasynchronous SUN JAVASCRIPT, may also function properly in lieu of ADOBEFLASH PLAYER.

The client application 220 may communicate with the application server242 using messages such as XML messages or any data format. In this way,the tool may send information via the client application's 220communication protocol regarding an area that the user 210 wishes tosearch. XML messages may include the following information: the URL ofthe service provider servers 240, a data representation of the userselected area, and a search criterion. The data representation mayinclude the location, the boundary and the size of the selector tool. Inthe case of a circular user selected region, the data representation mayinclude the latitude and longitude of the center point of the circularselected region, and the radius of the circular selector tool. The datarepresentation may also be the set of data points on the layerencompassed by the user selected region.

If the client application 220 communicates to the application server 242using an XML message, the application server 242 may parse the XMLmessage and query the data source 244 with a query generated from theXML message. The data source 244 may return the resulting dataset to theapplication server 242. If the application server 242 uses XML messagesto communicate to the client application 220, the application server 242may format the resulting dataset into an XML message and transmit theXML message to the client application 220. If the client application 220receives XML messages from the application server 242, the clientapplication 220 may parse the XML message and display the results to theuser 210 through an interface, such as a graphical user interface.

FIG. 3 illustrates a flowchart that demonstrates a basic progression ofthe system 200 represented in FIG. 2. The flowchart gives an overview ofthe steps that may occur when a user 210 selects a region on the layerand inputs a search criterion. For explanation purposes, the steps maybe with reference to a circular selector tool, but other shapedselection tools may be used such as known or other defined shapes.

At block 310 the user 210 selects a region on the layer and inputs asearch criterion. In a mapping application this step may include using aselector tool to select the desired region of the map and inputting asearch criterion. Determining the region may include moving the map,moving the selector tool, resizing the selector tool, or zooming into orout of the map. The selector tool may exist independent from thesurface, such as a map, that it is sitting on. The selector tool may bepersistent, that is the boundary of the tool may remain visible afterdetermining, moving, or resizing the tool. The user 210 may select thesearch criterion from a preset list of categories presented to the user210, or the user 210 may manually enter a search term in lieu of apreset category. The criterion may facilitate the user 210 in receivinga focused set of relevant data. In the alternative, the tool may notrequire that the user 210 input a search criterion and may simplyretrieve information based on the selected region.

Once the user 210 determines the region of the layer, the system 200continues to block 315. The user 210 may continue operation of theselector tool while the system continues on to blocks 315 through 370.At block 315, the client application 220 may determine a datarepresentation of the selected region. The data representation mayinclude the location, the boundary and the size of the selector tool.For a circular selector tool in a mapping application the selectedregion may be represented by the longitude and latitude of the centerpoint, and the radius, of the selected region. Furthermore, the radiusof the selected region may be measured in the scale of the underlyingmap, not the scale of the display. In the case of a mapping applicationthe user 210 may be able to zoom into and out of the map and theselector tool may remain the same size on the display. However, thevalue of the radius of the selected region may change to reflect thechange in scale of the underlying map, and consequently the change inscale of the selected region.

At block 320 the client application 220 may submit the datarepresentation of the selected region, and the search criterion to theapplication server 242. The data representation may include thelocation, the boundary and the size of the selector tool. In the case ofa circular selector tool the data representation may include thelongitude and latitude of the center point and the radius of theselected region. This communication may be in the form of an XML messageor may include submitting a URL with the longitude, latitude, radius andsearch criterion as parameters of the URL query string. If a selectortool of a different shape is being used, other and/or additionalinformation may be used to describe the shape.

The user 210 may have the option of indicating the maximum number ofresults returned or the option of automatically resizing the selectedregion if no results are found. If the user 210 opts to limit the numberof results returned, the results in closest proximity to the centerpoint of the selected region may be returned first. If the user 210 optsto automatically resize the selected region, the system mayautomatically resize the selected region to a size that includes atleast one search result if no search results are initially found.

At block 330 the application server 242 may query the data source 244utilizing the parameters passed to the server from the clientapplication 220. If the client application 220 communicated to theapplication server 242 via an XML message the application server 242 mayneed to parse the XML message to extract the parameters beforesubmitting the query to the data source 244. The query may be builtdynamically from the parameters submitted by the client application 220.Alternatively the parameters may be submitted as part of a storedprocedure to the data source 244. The application server 242 may alsoquery the data source 244 for advertising data relevant to the selectedgeographic region.

At block 340 the data source 244 may execute the query and transmit theresulting data set to the application server 242. At block 350 theapplication server 242 transmits the resulting data set to the clientapplication 220, such as the web browser 120A. The data may betransmitted unaltered or may be formatted into XML or any other dataformat or data object. At block 360 the client application 220 receivesthe data or data objects from the application server 242. If the data isformatted in XML the client application 220 may parse the data. Any XMLparser, such as the APACHE XERCES may be used for XML parsing.Alternatively the client application 220 may communicate directly withthe data source 244.

At block 370 the client application 220 displays, such as via the webbrowser 120A or via a monitor, the data received from the applicationserver 242, in a format appropriate for the underlying data layer. Wherethe data layer is a mapping application, the client application 220 maydisplay the data as a visual depiction on a map, such as points on amap, or as a list next to the map, such as ordered by the distance fromthe center of the selected region. Furthermore, the points on the mapmay be displayed as flags or numbers corresponding to a numbered searchresult list. The numbered search result list may be displayed on or nearthe map. Alternatively, the application server 242 may return data thatis relevant to a range outside of the selected region. The range outsideof the selected region may be defined by a default value or may bespecified by the user. In a mapping application, the data that isrelevant to a range outside of the selected region may be displayeddistinct from the data relevant to the specified region, such asdifferent colored flags for data that falls outside of the selectedregion.

The displayed data may contain URL links to the homepage of theindividual data items so that the user 210 may connect to and viewinformation on the home page. An advertiser may be charged every time auser 210 clicks through or views the link. The data may also bedisplayed in other ways, such as alphabetically with a phone number andaddress relating to the data item. If the returned data includesadvertising data, the advertising data may be displayed as points on themap, links in the list of results, and/or banner ads. Furthermore, thepoints on the map may be displayed as flags or numbers corresponding toa numbered search result list. The numbered search result list may bedisplayed on or near the map. The advertising data may be ordered basedon its relevance to the region or the search criterion, the price paidby the advertiser, or any other metric or combination of metrics.Alternatively, the client application 220 may display the requested dataand any advertising data in any format or mode that conforms to theunderlying data layer.

FIG. 4 shows a flowchart of an example of exemplary functionality of thesystem 200 and the interaction between the client application 220 andthe service provider servers 240. At block 405, the user 210 loads theclient application 220. The user 210 may load the client application 220by inputting the URL of the client application 220 into their webbrowser 120A, such as the URL of a mapping application or the URL of anapplication that utilizes a mapping application. This step may include athird party application server 120B submitting a request to the serviceprovider servers 240. This step may also include the client application220 displaying data to the user, such as a map in a mapping application.Alternatively the user may launch a standalone application 120N, whichmay interact with the service provider servers 240. The standaloneapplication 120N may be an embedded application running in a device suchas a GPS device or a mobile phone or any application running on aplatform that supports the ADOBE FLASH PLAYER, SUN JAVASCRIPT, or anyprogramming language implementing communication protocols.

At block 415 the user 210 may use the selector tool to select a regionon the map and may select a search criterion. The user 210 may use aninput device, such as a keyboard, a mouse, a touch pad, a touch screendisplay, a light pen, or a remote control, to manipulate the selectortool to encompass the desired region. The user 210 may have the abilityto resize the area of the region encompassed by the selector tool, suchas by dragging the boundary of the selector tool. There may be severalalternative methods for identifying the selected region. The user 210may use a polygonal selector tool to select a polygonal area or a lineselector tool to identify a line or path. There may be an interface thatallows the user 210 to enter an address. Furthermore, the user 210 maybe able to specify a range from the address, origin, center, or line, toselect a search area.

The user 210 may select the search criterion from a preset list ofcategories presented to the user 210, or the user 210 may manually entera search criterion in lieu of a preset category. In either case, thecriterion or category may facilitate the user 210 in receiving a focusedset of relevant data. Alternatively or additionally, the system 200 maynot require that the user 210 input a search criterion and may simplyretrieve information based on the selected region.

At block 420 the system 200 may determine a data representation of theselected region. The data representation may include the location, theboundary and the size of the selector tool. If the user 210 had employeda circular selector tool, the coordinates of the center point of theselected region and the radius of the selected region may be determined.If the user 210 had employed a polygonal selector tool the coordinatesof the corners of the polygonal area may be determined. In animplementation that visually depicts a sound file the time values of theselected range may be used to represent the selected region.

At block 425 the client application 220 communicates the datarepresenting the selected region and the search criterion to theapplication server 242. In the case of a circular selector tool the datarepresenting the selected region may include the longitude and latitudeof the center point and the radius of the selected region. This data maybe transmitted to the application server 242, such as through an XMLmessage or through a URL with the data as parameters in the URL querystring. Alternatively, the data representing the selected region mayinclude several longitude/latitude pairs or other identifying values.Alternatively the data may include other values necessary in identifyingthe selected region.

At block 430 the application server 242 may receive the data from theclient application 220 and may parse the data if the data was formattedin XML. Using the values extracted from the message, the applicationserver 242 may generate a query and search the data source 244.Alternatively the application server 242 may utilize a stored procedureor other data retrieval method to perform the database search. The formof the query may be dependent on the manner in which the data is storedin the data source 244.

The application server 242 may also query the data source 244 foradvertising data relevant to the selected region. The advertising datamay include advertisements from advertisers relevant to the selectedregion. The advertising data may also be linked to the user's 210 searchcriterion.

Alternatively, advertisers may use the selector tool to select a regiontheir advertisements relate to. In this case the advertisers may selecta region that may be used to store data related to the advertiser'sadvertisements. The advertiser may use the selector tool to select aregion and select advertisements to associate or link to the advertiserselected region. Data representing the advertiser selected region andthe advertiser linked ad data may then be transmitted to the applicationserver 242 and stored in the data source 244. The advertisement data maybe retrieved and displayed to the user 210 if the region selected by theuser 210 intersects with an advertisement region previously selected byan advertiser.

At block 435 the data source 244 executes the query and returns the dataresults to the application server 242. If the data is to be formatted inXML or some other data format, either the data source 244 or theapplication server 242 may format the data. At block 440 the applicationserver 242 communicates the data to the client application 220.

At block 445 the client application 220 receives the data from theapplication server 242 and displays the results in a manner consistentwith the underlying layer. In a mapping application the data may bedisplayed as points on the map, or as an ordered list. Furthermore, thepoints on the map may be displayed as flags or numbers corresponding toa numbered search result list. The numbered search result list may bedisplayed on or near the map. The data may be ordered based on distancefrom the center point of the selected region or may be orderedalphabetically. The data may include directional information,longitude/latitude coordinate information, contact information, and anyrelevant URL information. The user 210 may have the option to receivedirections to any of the returned data items. Directions may becalculated from the center of the selected region or from anotheridentified location. If the data is formatted in XML the clientapplication 220 may need to parse the XML to extract the data elements.

Alternatively, data relevant to a segment in time of a sound data filemay be retrieved. In this case there may be data objects linked to atime segment of a sound file. The user 210 may be presented with avisual representation of the sound file. The user may be able to selecta region of the visual representation to receive data related to. Thedata the user receives may include a list of references that may beopened externally to the client application 220, such as a MICROSOFTWORD document, MICROSOFT EXCEL spreadsheet, photo or video amongstothers. The list may be ordered based on proximity in time to the centerpoint of the user selected region.

Decision nodes 450, 455, 460 and 465 may occur simultaneously orlinearly. If the system 200 utilizes the ADOBE FLASH or any similararchitecture, the architecture may include event handlers that listenfor events to occur. If one of the events identified in blocks 450, 455,460 and 465 occurs, the event handler may identify the event and takethe steps identified in the flowchart. Alternatively, the system mayperform all of the actions of blocks 470 and 475 immediately prior tosubmitting data to the application server 242.

During operation the user 210 may move the map and/or the selector tool.Moving the selector tool outside of the viewable area may cause theclient application 220 to pan or re-center the viewable area to includethe selector tool within the viewable area. At decision node 450, thesystem 200 may determine if the user 210 moved the map or the selectortool. Movement of the selector tool may require updating the datarepresentation of the selected region. The map may be moved independentof the selected region, which also may require updating the datarepresentation of the selected region. If the user 210 moved the map orthe selector tool the system 200 moves to block 470, otherwise the logicof the system 200 moves to decision node 455. At block 470 the datarepresenting the selected region may be updated. If the user 210employed a circular selector tool moving the selector tool may cause thecoordinates of the center point of the selector tool to change but maynot affect the radius. Thus, the longitude and latitude of the centerpoint of the selected region may be updated. The system 200 continues toblock 425 where the data representation of the selected region and thecategory may be communicated to the application server 242.

During operation, the user 210 may resize the selector tool, to make theselected region bigger or smaller on the display. When the selector toolis resized, the scale of the map shown on the display may be resized ormay stay the same. At decision node 455 the system 200 determineswhether the user 210 resized the selector tool. If the user 210 employeda circular selector tool, resizing the selector tool may cause theradius of the selected region to change but it may not affect thecoordinates of the selected region. If the user 210 resized the selectortool, the system moves to block 470; otherwise the system 200 moves todecision node 460. At block 470 the system 200 updates the datarepresentation of the selected region. The data representation mayinclude the location, the boundary and the size of the selector tool. Ifthe user 210 employed a circular selector tool the system 200 may updatethe radius of the selected region. After updating the datarepresentation of the selected region the system 200 proceeds to block425. At block 425 the client application 220 may communicate the datarepresentation of the selected region and the category to theapplication server 242.

During operation, the user 210 may zoom into or out of the map. Atdecision node 460 the system 200 may determine whether the user 210 usedthe zoom functionality of the map. By zooming into or out of the map theuser 210 may change the data representation of the selected region. Ifthe user 210 employed a circular selector tool, zooming into or out ofthe map may change the radius and the coordinates of the selectedregion. While the physical area of the selector tool may not changeduring a zoom, the region of the map encompassed by the selector toolmay change. In the case of a circular selector tool, the radius of theregion encompassed by the selector tool may change to match the scale ofthe underlying map and the longitude and latitude of the center point ofthe region may have changed.

If the user 210 zoomed into or out of the map, the system moves to block470; otherwise the system 200 moves to decision node 465. At block 470the system 200 updates the data representation of the selected region.If the user 210 employed a circular selector tool the system 200 mayupdate the radius of the selected region and the longitude and latitudeof the center point of the region. After updating the datarepresentation of the selected region the system 200 proceeds to block425. At block 425 the client application 220 may communicate the datarepresentation of the selected region and the category to theapplication server 242.

Alternatively the data representing the selected region's boundaries maynot change while the scale of the selected region may change to matchthe change in scale of the underlying map. In the case of a circularselector tool the longitude and latitude of the center point of theselected region may not change while the radius of the selected regionmay change to match the scale of the underlying map. This may requirethe client application 220 to re-center or pan the map if the selectedregion is no longer within the viewable area of the map as a result ofthe zoom.

Alternatively, both the data representing the selected region'sboundaries and the scale of the selected region may remain fixed after azoom. In the case of a circular selector tool both the longitude andlatitude of the center point of the selected region and the radius ofthe selected region may remain fixed. This may require that the shape ofthe selector tool be resized to reflect the change in scale of the zoom.

A mapping application may also contain a mini-map tool in the corner ofthe display. A mini-map tool may allow a user 210 to quickly change theviewable area of the map. The tool may include a miniature map of theentire selectable area of the map and may allow the user 210 to move aselector over the region of the map they wish to view. The viewable areaof the map may be the portion of the map shown on the display. The userselected region may be reflected on the miniature map of the mini-maptool.

During operation the user 210 may change the search criterion. Atdecision node 465, the system 200 may determine whether the user 210changed the search criterion. If the user 210 did not change the searchcriterion, the system 200 may move to decision node 450. If the user 210did change the search criterion, such as by selecting a new category,the system 200 may move to block 475. At block 475 the system 200updates the search criterion variable to reflect the update and thesteps continue to block 425. At block 425 the client application 220 maycommunicate the data representation of the selected region and thecategory to the application server 242.

FIG. 5 illustrates a screen shot of an exemplary user interface 500 ofthe tool. User interface 500 includes a selector tool 510, a mini-maptool 520, a zoom tool 530, a result window 540, a category selector tool550 and a map 560. The selector tool 510 includes an area 512, a radius514, a handle 516, and a center point 518. The mini-map tool 520includes a mini-map activator button 522, a viewable map selector 524,and a mini-map 526. The zoom tool 530 includes a zoom out button 532, azoom in button 534, a zoom level selector 536 and a zoom range 538. Theresults window 540 includes a results column 542 and a distance column544. The category selector tool 550 includes a selected category 552, alist of categories 554, and a category selector activator button 556.

The user 210 may determine the selected region by moving the selectortool 510 to cover a portion of the map 560. The selector tool 510 mayexist independent of the map 560. The visibility of the boundary of theselector tool 510 may demonstrate the persistency of the selector tool510 upon selecting the region. The region of the map 560 covered by thearea 512 of the selector tool 510 may be the region selected by the user210. The selected region encompassed by the selector tool 510 may bedescribed by the center point 518 and the radius 514 of the selectortool 510. In this case the longitude and latitude of the center point518 of the selector tool 510 and the radius 514 of the selector tool 510may be the data representing the selected region. Alternatively, theselected region may be described or represented in other ways,especially for selector tools of other shapes.

The user 210 may move the selector tool 510 by dragging any part of theselector tool 510. By dragging the handle 516 the user 210 may changethe size of the area 512 and value of the radius 514, while the centerpoint 518 of the selector tool 510 may remain constant. The user 210 maymove the displayed map 560 by dragging any part of the map 560 that maynot be covered by the selector tool 510, the mini-map tool 520 or thezoom tool 530. The selector tool 510 may not be fixed to the map 560, inwhich case moving the map 560 may change the region of the map 560covered by the area 512 of the selector tool 510. Alternatively, theselector tool 510 may be fixed.

The user 210 may change the displayed map 560 by using the mini-map tool520. If the mini-map tool 520 is not activated, the user 210 may clickon the mini-map activator button 522 to access the mini-map tool 520.The mini-map 526 may display the entire selectable region of the map560. A viewable map selector 524 may cover the area of the mini-map 526that may currently be viewable on the map 560. The user 210 may drag theviewable map selector 524 to cover a different part of the mini-map 526.Moving the viewable map selector 524 may cause the map 560 to move tothe geographic area of the mini-map 526 overlapped by the viewable mapselector 524.

The user 210 may change the scale of the displayed map 560 by zoominginto or out of the map 560 using the zoom tool 530. The user 210 maychange the scale of the map 560 by clicking on the zoom in button 534 orthe zoom out button 532 or by dragging the zoom level selector 536 up ordown the zoom range 538. Alternatively, the user 210 may change thescale of the map 560 through direct shortcuts, such as using the scrollwheel of a mouse or pressing a keyboard key or key combination. The zoomlevel selector 536 may also indicate the current scale of the zoom. Theselector tool 510 may remain unchanged by a zoom, but changing the scaleof the map 560 may result in the selector tool 510 encompassing adifferent area of the map 560. Thus, a zoom may necessitate sending anupdate of the data describing the user selected region to theapplication server 242. In the case of the circular shaped selector tool510, the value of the radius 514 of the selector tool 510 and the valueof the coordinates of the center point 518 of the selector tool 510 maybe sent to the application server 242. Selector tools of other shapesmay be described by different data.

The user 210 may select the category they wish to receive specificinformation regarding by using the category selector tool 550. If thecategory selector tool 550 is not activated, the user 210 may click onthe category selector activator button 556 to access the categoryselector tool 550. Examples of categories may include: automotive,business to business, computers and electronics, education,entertainment and arts, food and dining, government and community,health and beauty, home and garden, landmarks, legal and financialservices, professional services, real estate, recreation and sportinggoods, retail shopping, and travel and lodging or any other variableused to refine or filter the data displayed on the map. The user 210 maychange the selected category 552 by clicking on any other category inthe list of categories 554. If the category is changed, any searchresults in the selected region relating to the selected category 552 maybe displayed.

The resizing, moving, zooming, and category selection actions describedabove may necessitate the system refresh the results window 540 with newdata. Specifically these triggering events necessitating a refresh mayoccur when: the user 210 resizes the region 510 by dragging the handle516, the user 210 moves the region 510 by dragging any part of theregion 510 except the handle 516, the user 210 moves the map 560 bydragging any part of the map 560 except the areas covered by theselector tool 510, the mini-map tool 520, or the zoom tool 530, the user210 zooms in or out of the map 560 by using the zoom tool 530, or theuser 210 selects a different selected category 552 in the categoryselector tool 550.

When a triggering event occurs, the data representing the selectedregion and the selected category 552 may be transmitted to theapplication server 242. In the case of the circular shaped selector tool510, this data may include the value of the radius 514, the longitudeand latitude of the center point 518, and the selected category 552. Thedata may be transmitted as an XML message, as parameters in a URL querystring, or in any similar data communication format. The applicationserver 242 may then communicate with the data source 244 to obtain theresults and transmit the results to the client application 220. Theclient application 220 may display the results in the results window540, of the display, as a list including a results column 542 and adistance column 544. The results column 542 may display the name of thedata item and the distance column 544 may display the distance from thedata item to the center point 518 of the selected region 510.

Alternatively, when the user 210 zooms on the map 560, the center point518 of the selector tool 510 may remain fixed to a location on the map560. If the zoom causes the selector tool 510 to fall outside of theviewable area of the map 560, the application may have to re-center themap 560 on the center point 518 of the selector tool 510.

Alternatively, the data returned to the user 210 may be displayed withinthe selector tool 510. For instance, if the user 210 searches fortransit data relevant to the selected area 512, the data displayedwithin the selected area 512 may change to transit lines that may runwithin the selected area 512. In this instance the view of the remainderof the map 560 may remain unchanged. Alternatively, the user 210 may beable to change the view of the selected area 512, to display a satelliteview within the selected area 512, while the remainder of the map 560remains unchanged.

FIG. 6 illustrates an exemplary screen shot 600, which may be displayedby the system 200 when the user 210 uses the zoom tool 530 to change thescale of the map 560 in FIG. 5. The map 560 in FIG. 6 is the viewablemap that may result from the user 210 using the zoom tool 530 on the map560 in FIG. 5. The selector tool 510 in FIG. 6 may remain the same sizeas the selector tool 510 in FIG. 5. However, the value of the radius 514of the selector tool 510 in FIG. 6 may be different than the value ofthe radius 514 of the selector tool 510 in FIG. 5. In FIG. 6, the changein size of the radius 514 of the selector tool 510 reflects the area 512of the selector tool 510 mirroring the change in scale of the map 560 asa result of the zoom. The visibility of the boundary of the selectortool 510, may demonstrate the persistency of the selector tool 510 aftera zoom.

In FIG. 6, the center point 518 of the selector tool 510 may not becovering the same point on the map 560 as the center point 518 of theselector tool 510 on the map 560 in FIG. 5. Both the selector tool 510and the map 560 may move independent of each other and therefore the map560 may move independently of the selector tool 510 during a zoom.Alternatively, the center point 518 of the selector tool 510 may remainfixed on a point on the map 560 during a zoom. This may require theclient application 220 to re-center the viewable area of the map 560after a zoom if the zoom results in the selector tool 510 being outsideof the viewable area of the map 560.

FIG. 7 illustrates an exemplary screen shot of the invention, 700, whenthe user 210 uses the handle 516, of the selector tool 510 in FIG. 6, toresize the area 512 of the selector tool 510. The resized area 512 ofthe selector tool 510 in FIG. 7 may be the result of the user 210 usingthe handle 516, of the selector tool 510 in FIG. 6, to resize the area512 of the selector tool 510. In FIG. 7, the value of the radius 514 ofthe selector tool 510 may differ from the value of the radius in FIG. 6.This difference may reflect the change in size of the area 512 of theselector tool 510 in FIG. 7. The visibility of the boundary of theselector tool 510 may demonstrate the persistency of the selector tool510 after the user 210 moves the selector tool 510.

The user 210 may be able to resize the area 512 of the selector tool 510by dragging the handle 516 of the selector tool 510 towards or away fromthe center point 518 of the selector tool 510. The handle 516 may belocated on the boundary of the selector tool 510. Alternatively thehandle 516 may be located elsewhere on the selector tool 510 or theselector tool 510 may be resized by using the scroll-wheel of a mouse ora similar input device. The value of the radius 514 of the selector tool510 may change as the user 210 resizes the area 512 of the selector tool510.

FIG. 8 illustrates an exemplary logic for the dynamic retrieval of datafrom a server, such as application server 242. At block 805 the eventhandler waits for an action event to occur. Action events may includeany interaction between the user 210 and the client application 220,including but not limited to: the user 210 moving the map 560 orselector tool 510, the user 210 resizing the selector tool 510, the user210 zooming the map 560, and the user 210 changing the selected category552. There may also be action events that are unrelated to the user's210 interaction with the client application 220. The event handler mayoperate in parallel with the rest of the client application 220; that isthe event handler may listen for action events while the rest of theclient application 220 functions independently.

At blocks 810, 812, 814 and 816, the user 210 interacts with the clientapplication 220 in a manner that may have a direct effect on the resultsbeing displayed to the user 210. At block 810 the user 210 moves the map560 or the selector tool 510, at block 812 the user 210 resizes theselector tool 510, at block 814 the user 210 zooms in on the map 560,and at block 816 the user 210 changes the search criterion, such as theselected category 552. Data retrieval may be dynamic since theoccurrence of any of these events may automatically notify the eventhandler that an action event may have occurred at block 820. This occurswithout the need for the user 210 to perform another action or withoutfurther input from the user 210, such as without the need to click asearch button or any other interaction.

At block 830, the variables that were affected by the action event maybe updated. At block 840 the client application 220 may automaticallysubmit the updated data representation of the selected region and searchcriterion to the application server 242. At block 850 the applicationserver 242 may return the resulting data to the client application 220,and at block 860 the client application 220 may display the resultingdata to the user 210. The event handler may constantly continue tolisten for new action events.

The illustrations of the embodiments described herein are intended toprovide a general understanding of the structure of the variousembodiments. The illustrations are not intended to serve as a completedescription of all of the elements and features of apparatus andprocessors that utilize the structures or methods described herein. Manyother embodiments may be apparent to those of skill in the art uponreviewing the disclosure. Other embodiments may be utilized and derivedfrom the disclosure, such that structural and logical substitutions andchanges may be made without departing from the scope of the disclosure.Additionally, the illustrations are merely representational and may notbe drawn to scale. Certain proportions within the illustrations may beexaggerated, while other proportions may be minimized. Accordingly, thedisclosure and the figures are to be regarded as illustrative ratherthan restrictive.

One or more embodiments of the disclosure may be referred to herein,individually and/or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any particular invention or inventive concept. Moreover,although specific embodiments have been illustrated and describedherein, it should be appreciated that any subsequent arrangementdesigned to achieve the same or similar purpose may be substituted forthe specific embodiments shown. This disclosure is intended to cover anyand all subsequent adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the description.

The Abstract of the Disclosure is provided with the understanding thatit will not be used to interpret or limit the scope or meaning of theclaims. In addition, in the foregoing Detailed Description, variousfeatures may be grouped together or described in a single embodiment forthe purpose of streamlining the disclosure. This disclosure is not to beinterpreted as reflecting an intention that the claimed embodimentsrequire more features than are expressly recited in each claim. Rather,as the following claims reflect, inventive subject matter may bedirected to less than all of the features of any of the disclosedembodiments. Thus, the following claims are incorporated into theDetailed Description, with each claim standing on its own as definingseparately claimed subject matter.

The above disclosed subject matter is to be considered illustrative, andnot restrictive, and the appended claims are intended to cover all suchmodifications, enhancements, and other embodiments, which fall withinthe true spirit and scope of the present invention. Thus, to the maximumextent allowed by law, the scope of the present invention is to bedetermined by the broadest permissible interpretation of the followingclaims and their equivalents, and shall not be restricted or limited bythe foregoing detailed description.

We claim:
 1. A system for retrieving data specific to a viewable area ofa layer, comprising: a database configured to store data correspondingto a plurality of locations within a geographic region; an applicationserver in operative communication the database and configured to receiverequests for data corresponding to a location within the geographicregion; an interface configured to display a layer and to enable a userto request data corresponding to a location within a viewable area ofthe layer, the viewable area being displayed in accordance with a firstscale and the layer being displayed in accordance a second scale,wherein the second scale of the layer remains fixed when the viewablearea changes, further wherein the first scale of the viewable areachanges proportionally to a change in the second scale of the layer. 2.The system of claim 1, wherein the application server is furtherconfigured to receive a search query from the interface, query thedatabase with the search query and the location within the geographicregion, and receive data from the database, wherein the data correspondsto the search query and the location within the geographic region. 3.The system of claim 1, wherein the location within the geographiclocation comprises a business location, a residential address, across-street, a current event, or a public facility.
 4. The system ofclaim 1, wherein the data corresponding to a plurality of locationswithin a geographic region is displayed as a list of locations, or as aflag on a viewable area of the layer.
 5. The system of claim 1, whereinthe interface is displayed as part of an application running on a mobiledevice.
 6. The system of claim 5, wherein the interface comprises atouch screen of the mobile device.
 7. The system of claim 1, wherein thedatabase is dynamically queried using the location within the geographicregion upon a change to the viewable area.
 8. The system of claim 1,wherein the layer comprises a map.
 9. A non-transitory computer readablemedium having stored therein data representing instructions executableby a programmed processor for retrieving data specific to a region of alayer, comprising: first instructions for receiving, by the processor, afirst request for data corresponding to one or more locations within aregion of a layer; second instructions for identifying, by theprocessor, data corresponding to the one or more locations within theregion and displaying the data on the region of the layer, the regionbeing displayed in accordance to a first scale and the layer beingdisplayed in accordance with a second scale, wherein the second scale ofthe layer remains fixed when the region is updated, further wherein thefirst scale of the region updates proportionally to an update in thesecond scale of the layer; third instructions for receiving, by theprocessor, a second request for data corresponding to the one or morelocations within a region of a layer, wherein the second request isreceived in response to an update of the region, the first scale, or thesecond scale; and fourth instructions for displaying, by the processor,the data on the region of the layer, the region being displayed inaccordance with the updated region, first scale, or second scale. 10.The non-transitory computer readable medium of claim 9, furthercomprising fifth instructions for receiving, by the processor, a searchquery for data corresponding to a location within the region of thelayer; and sixth instructions for receiving and displaying, by theprocessor, data corresponding to a location within the region of thelayer, wherein the data is related to the search query and the locationwithin the region of the layer.
 11. The non-transitory computer readablemedium of claim 9, further comprising fifth instructions for displayingthe data corresponding to the one or more locations within the region asa list of locations, or as flags on the layer.
 12. The non-transitorycomputer readable medium of claim 9, wherein the fourth instructions fordisplaying the data are received and executed dynamically in response toan update in the region, first scale, or second scale.
 13. Thenon-transitory computer readable medium of claim 9, wherein the secondinstructions further comprise instructions for displaying the region onthe screen of the mobile device.
 14. The non-transitory computerreadable medium of claim 13, wherein the region on the screen the mobiledevice may be updated using a touch screen of the mobile device.
 15. Thenon-transitory computer readable medium of claim 13, wherein the fourthinstructions for displaying the data are executed dynamically inresponse to an update of the region displayed on the screen of themobile device.
 16. A computer-implemented method for retrieving dataspecific to a displayed region of a layer, comprising: providing datacorresponding to one or more geographic regions within a layer of a map;providing an interface configured to display the layer and to retrievedata corresponding to the one or more geographic regions; receiving arequest for data corresponding to a displayed geographic region withinthe layer of the map, wherein the displayed geographic region isdisplayed according to a first scale and the layer of the map isdisplayed according to a second scale; and updating the request for datacorresponding to the displayed geographic region according to a changein the first scale or the second scale, wherein the second scale of thelayer remains fixed when the first scale of the displayed geographicregion is updated, further wherein the first scale of the displayedgeographic region updates proportionally to an update in the secondscale of the layer.
 17. The computer-implemented method of claim 16,wherein the data corresponding to the one or more geographic regions isdynamically retrieved in response to the interface displaying thedisplayed geographic region.
 18. The computer-implemented method ofclaim 16, wherein the updating the request for data corresponding to thedisplayed region comprises dynamically updating the request in responseto change in the first scale or the second scale.
 19. Thecomputer-implemented method of claim 16, wherein the interface isprovided as part of an application running on a mobile device.
 20. Thecomputer-implemented method of claim 16, wherein an area encompassed bythe displayed geographic region is automatically resized upon changingthe second scale of the layer.